package com.turbo.cloud.ums.web.model.user;

import com.turbo.cloud.core.annotations.datamasking.DataMasking;
import com.turbo.cloud.core.annotations.datamasking.DataMaskingType;
import com.turbo.cloud.core.base.BaseModel;
import com.turbo.cloud.ums.web.model.component.UmsMenuComponentVo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.util.List;

/**
 * <p>
 * 用户表
 * </p>
 *
 * @author zhangluning
 * @since 2022-10-11
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Accessors(chain = true)
public class UmsUserVo extends BaseModel {

    /**
     * 主键
     */
    private String id;

    /**
     * 系统Id
     */
    private String systemId;

    /**
     * 用户名
     */
    private String username;

    /**
     * 密码
     */
    private String password;

    /**
     * 头像
     */
    private String icon;

    /**
     * 头像
     */
    private String iconFileUrl;

    /**
     * 手机号
     */
    private String mobileNo;

    /**
     * 手机号(脱敏)
     */
    @DataMasking(type = DataMaskingType.MOBILE_PHONE)
    private String mobileNoByMask;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 邮箱(脱敏)
     */
    @DataMasking(type = DataMaskingType.EMAIL)
    private String emailByMask;

    /**
     * 姓名
     */
    private String realName;

    /**
     * 昵称
     */
    private String nickName;
    private String nickNameByLike;

    /**
     * 备注信息
     */
    private String note;

    /**
     * 扩展属性，可以存储json
     */
    private String extAttribute;

    /**
     * 首页地址
     */
    private String homeMenuId;
    private String homePath;

    /**
     * 角色ID列表
     */
    private List<String> roleIds;

    /**
     * 权限ID列表
     */
    private List<String> permissionIds;
    /**
     * 用户菜单组件
     */
    private List<UmsMenuComponentVo> componentPermissions;

    /**
     * 部门ID列表
     */
    private List<String> deptIds;
}
